/*
 * @lc app=leetcode.cn id=169 lang=typescript
 *
 * [169] 多数元素
 */

// @lc code=start

//  思路：摩尔投票法
//  遍历一遍res记录结果，count计数，当count = 0，res赋当前值
//  count != 0，res等于当前值，count++，否则count--

//  复杂度：O(n) O(1)

function majorityElement(nums: number[]): number {
    let res: number = 0, count = 0
    nums.forEach((num) => {
        if (!count) res = num
        if (num === res) count++
        else count--
    })
    return res
};
// @lc code=end

console.log(majorityElement([2, 2, 1, 1, 1, 2, 2]));
